/**
 *
 */
package com.ccjq.jq173.core.util;

/**
 * 分页工具类
 *
 * @author xugang
 */
public class PageUtils {

    /**
     * 计算查询的起始行数
     *
     * @param pageSize 每页显示的记录数
     * @param pageNo   要查询的页数
     * @return 返回查询的起始行数
     */
    public static int getStartRow(int pageSize, int pageNo) {
        int startRow = 0;
        if (pageNo - 1 > 0) {
            startRow = (pageNo - 1) * pageSize;
        }
        return startRow;
    }

    /**
     * 计算查询的起始行数 (oracle数据库)
     *
     * @param pageSize 每页显示的记录数
     * @param pageNo   要查询的页数
     * @return 返回查询的起始行数
     */
    public static int getStartRow4Oracle(int pageSize, int pageNo) {
        int startRow = 1;
        if (pageNo - 1 > 0) {
            startRow = (pageNo - 1) * pageSize + 1;
        }
        return startRow;
    }

    /**
     * 计算查询的结束行数 (oracle数据库)
     *
     * @param pageSize 每页显示的记录数
     * @param pageNo   要查询的页数
     * @return 返回查询的结束行数
     */
    public static int getEndRow4Oracle(int pageSize, int pageNo) {
        return pageSize * pageNo;
    }

    /**
     * 计算总页数
     *
     * @param total    总记录数
     * @param pageSize 每页显示的记录数
     * @return 返回总页数
     */
    public static int getPageCount(int total, int pageSize) {
        int pages = 1;
        if (total % pageSize == 0) {
            pages = total / pageSize;
        } else {
            pages = total / pageSize + 1;
        }
        return pages;
    }

}
